package com.zhongwang.business.module.taskManage.service;

import com.zhongwang.business.module.system.log.LogService;
import com.zhongwang.business.module.taskManage.dao.UnassignedTaskDao;
import com.zhongwang.business.module.taskManage.model.TaskBoardModel;
import com.zhongwang.business.module.taskManage.model.TaskModel;
import com.zhongwang.business.module.taskManage.model.UnassignedTaskModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @InterfaceName： UnassignedTaskDao
 * @Description： 获取待下达的项目信息列表
 * @Author： 闫薇
 * @date： 2020/8/20 13:18
 * @version： V1.0
 **/
@Service
public class UnassignedTaskService {
    @Autowired
    private LogService logService;
    @Autowired
    private UnassignedTaskDao unassignedTaskDao;

    /**
     * 查询待下达项目列表
     * @param model
     * @return
     */
    public List<UnassignedTaskModel> selectUnassignedTaskList(UnassignedTaskModel model){
        return unassignedTaskDao.selectUnassignedTaskList(model);
    }

    /**
     * 查询是否存在
     * @param model
     * @return
     */
    public  List<UnassignedTaskModel> selectIsExistsTask(UnassignedTaskModel model){
        return unassignedTaskDao.selectIsExistsTask(model);
    }

    /**
     * 执行添加
     * @param model
     * @return
     */
    public Integer addUnassignedTask(UnassignedTaskModel model){
        int flg=unassignedTaskDao.addUnassignedTask(model);
        logService.saveLog("商务任务下达-任务分配", "任务下达，项目id："+model.getFkId()+"，项目编号："+model.getCode()+"，下达表的主键id："+model.getId());
        return flg;
    }

    /**
     * 执行修改
     * @param model
     * @return
     */
    public Integer updUnassignedTask(UnassignedTaskModel model){
        return unassignedTaskDao.updUnassignedTask(model);
    }

    /**
     * 修改任务状态
      * @param model
     * @return
     */
    public Integer updTaskData(TaskModel model){
        return unassignedTaskDao.updTaskData(model);
    }
    /**
     * 待下达任务列表
     * @param model
     * @return
     */
    public  List<UnassignedTaskModel> selectTaskList(UnassignedTaskModel model){
        return unassignedTaskDao.selectTaskList(model);
    }


    /**
     * 执行驳回
     * @param model
     * @return
     */
    public Integer returnUnassignedTask(UnassignedTaskModel model){
        return unassignedTaskDao.returnUnassignedTask(model);
    }

    /**
     * 删除
     * @param id
     * @return
     */
    public Integer delUnassignedTask(Integer id){
        return unassignedTaskDao.delUnassignedTask(id);
    }

    /**
     * 看板
     * @param model
     * @return
     */
    public List<UnassignedTaskModel> selectAllProjectTaskList(UnassignedTaskModel model){
        List<UnassignedTaskModel> list=unassignedTaskDao.selectAllProjectTaskList(model);
        return list;
    }

    /**
     * 修改是否是合作项目
     * @param model
     * @return
     */
    public int updIsExpedited(UnassignedTaskModel model){
        logService.saveLog("合同信息编辑", "修改对应的项目-是否为合作项目，报价单编号："+model.getId().toString()+"否为合作项目"+model.getIsExpedited().toString());
        return unassignedTaskDao.updIsExpedited(model);
    }
    /**
     * 年份
     * @return
     */
    public List<UnassignedTaskModel> selectYears(){
        List<UnassignedTaskModel> list=unassignedTaskDao.selectYears();
        return list;
    }

    /**
     * 获取单一的项目信息
     * @param id
     * @return
     */
    public UnassignedTaskModel selectOneTaskInfo(Integer id){
        return unassignedTaskDao.selectOneTaskInfo(id);
    }

    /**
     * 获取项目看板的6项任务的进程
     * @param id
     * @return
     */
    public List<TaskBoardModel> selectTaskProgressById(Integer id){
        return unassignedTaskDao.selectTaskProgressById(id);
    }

    /**
     * 获取采集数据的进程
     * @param model
     * @return
     */
    public List<TaskBoardModel> selectDataStatusById(TaskBoardModel model){
        return unassignedTaskDao.selectDataStatusById(model);
    }

    /**
     * 任务的备注
     * @param model
     * @return
     */
    public TaskBoardModel selectReamrkById(TaskBoardModel model){
        return unassignedTaskDao.selectReamrkById(model);
    }
    /**
     * 获取审批数据的进程
     * @param model
     * @return
     */
    public List<TaskBoardModel> selectAppProgressById(TaskBoardModel model){
        return unassignedTaskDao.selectAppProgressById(model);
    }


    /**
     * 获取节点的附件数据
     * @param model
     * @return
     */
    public List<TaskBoardModel> selectNodeFilesById(TaskBoardModel model){
        return unassignedTaskDao.selectNodeFilesById(model);
    }
    /**
     * 根据id查询附件
     * @param id
     * @return
     */
    public  TaskBoardModel selectFilesById (Integer id){
        return unassignedTaskDao.selectFilesById(id);
    }

    /**
     * 获取节点的附件数据
     * @param model
     * @return
     */
    public int selectFilescCntById(TaskBoardModel model){
        return unassignedTaskDao.selectFilescCntById(model).getId();
    }

    /**
     * 获取节点的附件数据-报价
     * @param model
     * @return
     */
    public int selectBJFilescCntById(TaskBoardModel model){
        return unassignedTaskDao.selectBJFilescCntById(model).getId();
    }

    /**
     * 获取节点的附件数据-合同
     * @param model
     * @return
     */
    public int selectHTFilescCntById(TaskBoardModel model){
        return unassignedTaskDao.selectHTFilescCntById(model).getId();
    }

    /**
     * 获取节点的附件数据-款票
     * @param model
     * @return
     */
    public int selectKPFilescCntById(TaskBoardModel model){
        return unassignedTaskDao.selectKPFilescCntById(model).getId();
    }

    /**
     * 根据项目code 查询项目的基本信息
     * @param code
     * @return
     */
    public UnassignedTaskModel selectTaskOfProjectByCode(String code){
        return unassignedTaskDao.selectTaskOfProjectByCode(code);
    }

    public UnassignedTaskModel selectUnTaskOfRemark(Integer id){
        return unassignedTaskDao.selectUnTaskOfRemark(id);
    }
    /**
     * 获取任务下详细的任务的id，用于连接用。
     * @param id
     * @param tkind
     * @return
     */
    public int linkDetail(Integer id,Integer tkind){
        int bll_id=0;
        TaskModel taskModelResult=null;

         if(tkind>0 && tkind<8){
             TaskModel task=new TaskModel();
             task.setFkId(id);
             task.setTkind(tkind);
             try {
                 taskModelResult = unassignedTaskDao.selTaskOfBllIdByProjectId(task);
             }catch (Exception ex){
                 taskModelResult=null;
             }
         }
         if(taskModelResult==null){
             bll_id=0;
         }else{
             bll_id=taskModelResult.getId();
         }

        return bll_id;
    }

    /**
     * 修改备注
     * @param model
     * @return
     */
    public Integer updUnassignedReamrk(UnassignedTaskModel model) {
        return unassignedTaskDao.updUnassignedReamrk(model);
    }

    /**
     * 未下达的数量
     * @return
     */
    public Integer unTaskCnt(){
        UnassignedTaskModel unCntMdoel=unassignedTaskDao.unTaskCnt();
        return unCntMdoel.getId();
    }
}
